config ALPHA
	bool
	default y
	select HAVE_AOUT
	select HAVE_IDE
	select HAVE_OPROFILE
	select HAVE_SYSCALL_WRAPPERS
	select HAVE_IRQ_WORK
	select HAVE_PCSPKR_PLATFORM
	select HAVE_PERF_EVENTS
	select HAVE_DMA_ATTRS
	select HAVE_GENERIC_HARDIRQS
	select GENERIC_IRQ_PROBE
	select AUTO_IRQ_AFFINITY if SMP
	select GENERIC_IRQ_SHOW
	select ARCH_WANT_OPTIONAL_GPIOLIB
	select ARCH_HAVE_NMI_SAFE_CMPXCHG
	help
	  The Alpha is a 64-bit general-purpose processor designed and
	  marketed by the Digital Equipment Corporation of blessed memory,
	  now Hewlett-Packard.  The Alpha Linux project has a home page at
	  <http://www.alphalinux.org/>.

config 64BIT
	def_bool y

config MMU
	bool
	default y

config RWSEM_GENERIC_SPINLOCK
	bool

config RWSEM_XCHGADD_ALGORITHM
	bool
	default y

config ARCH_HAS_ILOG2_U32
	bool
	default n

config ARCH_HAS_ILOG2_U64
	bool
	default n

config GENERIC_CALIBRATE_DELAY
	bool
	default y

config GENERIC_CMOS_UPDATE
        def_bool y

config GENERIC_GPIO
	bool

config ZONE_DMA
	bool
	default y

config ARCH_DMA_ADDR_T_64BIT
	def_bool y

config NEED_DMA_MAP_STATE
       def_bool y

config NEED_SG_DMA_LENGTH
	def_bool y

config GENERIC_ISA_DMA
	bool
	default y

source "init/Kconfig"
source "kernel/Kconfig.freezer"


menu "System setup"

choice
	prompt "Alpha system type"
	default ALPHA_GENERIC
	---help---
	  This is the system type of your hardware.  A "generic" kernel will
	  run on any supported Alpha system. However, if you configure a
	  kernel for your specific system, it will be faster and smaller.

	  To find out what type of Alpha system you have, you may want to
	  check out the Linux/Alpha FAQ, accessible on the WWW from
	  <http://www.alphalinux.org/>. In summary:

	  Alcor/Alpha-XLT     AS 600, AS 500, XL-300, XL-366
	  Alpha-XL            XL-233, XL-266
	  AlphaBook1          Alpha laptop
	  Avanti              AS 200, AS 205, AS 250, AS 255, AS 300, AS 400
	  Cabriolet           AlphaPC64, AlphaPCI64
	  DP264               DP264 / DS20 / ES40 / DS10 / DS10L
	  EB164               EB164 21164 evaluation board
	  EB64+               EB64+ 21064 evaluation board
	  EB66                EB66 21066 evaluation board
	  EB66+               EB66+ 21066 evaluation board
	  Jensen              DECpc 150, DEC 2000 models 300, 500
	  LX164               AlphaPC164-LX
	  Lynx                AS 2100A
	  Miata               Personal Workstation 433/500/600 a/au
	  Marvel              AlphaServer ES47 / ES80 / GS1280
	  Mikasa              AS 1000
	  Noname              AXPpci33, UDB (Multia)
	  Noritake            AS 1000A, AS 600A, AS 800
	  PC164               AlphaPC164
	  Rawhide             AS 1200, AS 4000, AS 4100
	  Ruffian             RPX164-2, AlphaPC164-UX, AlphaPC164-BX
	  SX164               AlphaPC164-SX
	  Sable               AS 2000, AS 2100
	  Shark               DS 20L
	  Takara              Takara (OEM)
	  Titan               AlphaServer ES45 / DS25 / DS15
	  Wildfire            AlphaServer GS 40/80/160/320

	  If you don't know what to do, choose "generic".

config ALPHA_GENERIC
	bool "Generic"
	help
	  A generic kernel will run on all supported Alpha hardware.

config ALPHA_ALCOR
	bool "Alcor/Alpha-XLT"
	help
	  For systems using the Digital ALCOR chipset: 5 chips (4, 64-bit data
	  slices (Data Switch, DSW) - 208-pin PQFP and 1 control (Control, I/O
	  Address, CIA) - a 383 pin plastic PGA).  It provides a DRAM
	  controller (256-bit memory bus) and a PCI interface.  It also does
	  all the work required to support an external Bcache and to maintain
	  memory coherence when a PCI device DMAs into (or out of) memory.

config ALPHA_XL
	bool "Alpha-XL"
	help
	  XL-233 and XL-266-based Alpha systems.

config ALPHA_BOOK1
	bool "AlphaBook1"
	help
	  Dec AlphaBook1/Burns Alpha-based laptops.

config ALPHA_AVANTI_CH
	bool "Avanti"

config ALPHA_CABRIOLET
	bool "Cabriolet"
	help
	  Cabriolet AlphaPC64, AlphaPCI64 systems.  Derived from EB64+ but now
	  baby-AT with Flash boot ROM, no on-board SCSI or Ethernet. 3 ISA
	  slots, 4 PCI slots (one pair are on a shared slot), uses plug-in
	  Bcache SIMMs.  Requires power supply with 3.3V output.

config ALPHA_DP264
	bool "DP264"
	help
	  Various 21264 systems with the tsunami core logic chipset.
	  API Networks: 264DP, UP2000(+), CS20;
	  Compaq: DS10(E,L), XP900, XP1000, DS20(E), ES40.

config ALPHA_EB164
	bool "EB164"
	help
	  EB164 21164 evaluation board from DEC.  Uses 21164 and ALCOR.  Has
	  ISA and PCI expansion (3 ISA slots, 2 64-bit PCI slots (one is
	  shared with an ISA slot) and 2 32-bit PCI slots.  Uses plus-in
	  Bcache SIMMs. I/O sub-system provides SuperI/O (2S, 1P, FD), KBD,
	  MOUSE (PS2 style), RTC/NVRAM.  Boot ROM is Flash.  PC-AT-sized
	  motherboard.  Requires power supply with 3.3V output.

config ALPHA_EB64P_CH
	bool "EB64+"

config ALPHA_EB66
	bool "EB66"
	help
	  A Digital DS group board.  Uses 21066 or 21066A.  I/O sub-system is
	  identical to EB64+.  Baby PC-AT size.  Runs from standard PC power
	  supply.  The EB66 schematic was published as a marketing poster
	  advertising the 21066 as "the first microprocessor in the world with
	  embedded PCI".

config ALPHA_EB66P
	bool "EB66+"
	help
	  Later variant of the EB66 board.

config ALPHA_EIGER
	bool "Eiger"
	help
	  Apparently an obscure OEM single-board computer based on the
	  Typhoon/Tsunami chipset family. Information on it is scanty.

config ALPHA_JENSEN
	bool "Jensen"
	help
	  DEC PC 150 AXP (aka Jensen): This is a very old Digital system - one
	  of the first-generation Alpha systems. A number of these systems
	  seem to be available on the second- hand market. The Jensen is a
	  floor-standing tower system which originally used a 150MHz 21064 It
	  used programmable logic to interface a 486 EISA I/O bridge to the
	  CPU.

config ALPHA_LX164
	bool "LX164"
	help
	  A technical overview of this board is available at
	  <http://www.unix-ag.org/Linux-Alpha/Architectures/LX164.html>.

config ALPHA_LYNX
	bool "Lynx"
	help
	  AlphaServer 2100A-based systems.

config ALPHA_MARVEL
	bool "Marvel"
	help
	  AlphaServer ES47 / ES80 / GS1280 based on EV7.

config ALPHA_MIATA
	bool "Miata"
	help
	  The Digital PersonalWorkStation (PWS 433a, 433au, 500a, 500au, 600a,
	  or 600au).

config ALPHA_MIKASA
	bool "Mikasa"
	help
	  AlphaServer 1000-based Alpha systems.

config ALPHA_NAUTILUS
	bool "Nautilus"
	help
	  Alpha systems based on the AMD 751 & ALI 1543C chipsets.

config ALPHA_NONAME_CH
	bool "Noname"

config ALPHA_NORITAKE
	bool "Noritake"
	help
	  AlphaServer 1000A, AlphaServer 600A, and AlphaServer 800-based
	  systems.

config ALPHA_PC164
	bool "PC164"

config ALPHA_P2K
	bool "Platform2000"

config ALPHA_RAWHIDE
	bool "Rawhide"
	help
	  AlphaServer 1200, AlphaServer 4000 and AlphaServer 4100 machines.
	  See HOWTO at
	  <http://www.alphalinux.org/docs/rawhide/4100_install.shtml>.

config ALPHA_RUFFIAN
	bool "Ruffian"
	help
	  Samsung APC164UX.  There is a page on known problems and workarounds
	  at <http://www.alphalinux.org/faq/FAQ-11.html>.

config ALPHA_RX164
	bool "RX164"

config ALPHA_SX164
	bool "SX164"

config ALPHA_SABLE
	bool "Sable"
	help
	  Digital AlphaServer 2000 and 2100-based systems.

config ALPHA_SHARK
	bool "Shark"

config ALPHA_TAKARA
	bool "Takara"
	help
	  Alpha 11164-based OEM single-board computer.

config ALPHA_TITAN
	bool "Titan"
	help
	  AlphaServer ES45/DS25 SMP based on EV68 and Titan chipset.

config ALPHA_WILDFIRE
	bool "Wildfire"
	help
	  AlphaServer GS 40/80/160/320 SMP based on the EV67 core.

endchoice

# clear all implied options (don't want default values for those):
# Most of these machines have ISA slots; not exactly sure which don't,
# and this doesn't activate hordes of code, so do it always.
config ISA
	bool
	default y
	help
	  Find out whether you have ISA slots on your motherboard.  ISA is the
	  name of a bus system, i.e. the way the CPU talks to the other stuff
	  inside your box.  Other bus systems are PCI, EISA, MicroChannel
	  (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
	  newer boards don't support it.  If you have ISA, say Y, otherwise N.

config ISA_DMA_API
	bool
	default y

config PCI
	bool
	depends on !ALPHA_JENSEN
	select GENERIC_PCI_IOMAP
	default y
	help
	  Find out whether you have a PCI motherboard. PCI is the name of a
	  bus system, i.e. the way the CPU talks to the other stuff inside
	  your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
	  VESA. If you have PCI, say Y, otherwise N.

config PCI_DOMAINS
	bool
	default y

config PCI_SYSCALL
	def_bool PCI

config IOMMU_HELPER
	def_bool PCI

config ALPHA_NONAME
	bool
	depends on ALPHA_BOOK1 || ALPHA_NONAME_CH
	default y
	help
	  The AXPpci33 (aka NoName), is based on the EB66 (includes the Multia
	  UDB).  This design was produced by Digital's Technical OEM (TOEM)
	  group. It uses the 21066 processor running at 166MHz or 233MHz. It
	  is a baby-AT size, and runs from a standard PC power supply. It has
	  5 ISA slots and 3 PCI slots (one pair are a shared slot). There are
	  2 versions, with either PS/2 or large DIN connectors for the
	  keyboard.

config ALPHA_EV4
	bool
	depends on ALPHA_JENSEN || (ALPHA_SABLE && !ALPHA_GAMMA) || ALPHA_LYNX || ALPHA_NORITAKE && !ALPHA_PRIMO || ALPHA_MIKASA && !ALPHA_PRIMO || ALPHA_CABRIOLET || ALPHA_AVANTI_CH || ALPHA_EB64P_CH || ALPHA_XL || ALPHA_NONAME || ALPHA_EB66 || ALPHA_EB66P || ALPHA_P2K
	default y if !ALPHA_LYNX

config ALPHA_LCA
	bool
	depends on ALPHA_NONAME || ALPHA_EB66 || ALPHA_EB66P || ALPHA_P2K
	default y

config ALPHA_APECS
	bool
	depends on !ALPHA_PRIMO && (ALPHA_NORITAKE || ALPHA_MIKASA) || ALPHA_CABRIOLET || ALPHA_AVANTI_CH || ALPHA_EB64P_CH || ALPHA_XL
	default y

config ALPHA_EB64P
	bool
	depends on ALPHA_CABRIOLET || ALPHA_EB64P_CH
	default y
	help
	  Uses 21064 or 21064A and APECs.  Has ISA and PCI expansion (3 ISA,
	  2 PCI, one pair are on a shared slot). Supports 36-bit DRAM SIMs.
	  ISA bus generated by Intel SaturnI/O PCI-ISA bridge. On-board SCSI
	  (NCR 810 on PCI) Ethernet (Digital 21040), KBD, MOUSE (PS2 style),
	  SuperI/O (2S, 1P, FD), RTC/NVRAM. Boot ROM is EPROM.  PC-AT size.
	  Runs from standard PC power supply.

config ALPHA_EV5
	bool "EV5 CPU(s) (model 5/xxx)?" if ALPHA_LYNX
	default y if ALPHA_RX164 || ALPHA_RAWHIDE || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN || ALPHA_SABLE && ALPHA_GAMMA || ALPHA_NORITAKE && ALPHA_PRIMO || ALPHA_MIKASA && ALPHA_PRIMO || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_EB164 || ALPHA_ALCOR

config ALPHA_EV4
	bool
	default y if ALPHA_LYNX && !ALPHA_EV5

config ALPHA_CIA
	bool
	depends on ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN || ALPHA_NORITAKE && ALPHA_PRIMO || ALPHA_MIKASA && ALPHA_PRIMO || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_EB164 || ALPHA_ALCOR
	default y

config ALPHA_EV56
	bool "EV56 CPU (speed >= 366MHz)?" if ALPHA_ALCOR
	default y if ALPHA_RX164 || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN || ALPHA_PC164 || ALPHA_TAKARA

config ALPHA_EV56
	prompt "EV56 CPU (speed >= 333MHz)?"
	depends on ALPHA_NORITAKE || ALPHA_PRIMO

config ALPHA_EV56
	prompt "EV56 CPU (speed >= 400MHz)?"
	depends on ALPHA_RAWHIDE

config ALPHA_PRIMO
	bool "EV5 CPU daughtercard (model 5/xxx)?"
	depends on ALPHA_NORITAKE || ALPHA_MIKASA
	help
	  Say Y if you have an AS 1000 5/xxx or an AS 1000A 5/xxx.

config ALPHA_GAMMA
	bool "EV5 CPU(s) (model 5/xxx)?"
	depends on ALPHA_SABLE
	help
	  Say Y if you have an AS 2000 5/xxx or an AS 2100 5/xxx.

config ALPHA_GAMMA
	bool
	depends on ALPHA_LYNX
	default y

config ALPHA_T2
	bool
	depends on ALPHA_SABLE || ALPHA_LYNX
	default y

config ALPHA_PYXIS
	bool
	depends on ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN
	default y

config ALPHA_EV6
	bool
	depends on ALPHA_NAUTILUS || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_DP264 || ALPHA_EIGER || ALPHA_MARVEL
	default y

config ALPHA_TSUNAMI
	bool
	depends on ALPHA_SHARK || ALPHA_DP264 || ALPHA_EIGER
	default y

config ALPHA_EV67
	bool "EV67 (or later) CPU (speed > 600MHz)?" if ALPHA_DP264 || ALPHA_EIGER
	default y if ALPHA_NAUTILUS || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL
	help
	  Is this a machine based on the EV67 core?  If in doubt, select N here
	  and the machine will be treated as an EV6.

config ALPHA_MCPCIA
	bool
	depends on ALPHA_RAWHIDE
	default y

config ALPHA_POLARIS
	bool
	depends on ALPHA_RX164
	default y

config ALPHA_IRONGATE
	bool
	depends on ALPHA_NAUTILUS
	default y

config GENERIC_HWEIGHT
	bool
	default y if !ALPHA_EV67

config ALPHA_AVANTI
	bool
	depends on ALPHA_XL || ALPHA_AVANTI_CH
	default y
	help
	  Avanti AS 200, AS 205, AS 250, AS 255, AS 300, and AS 400-based
	  Alphas. Info at
	  <http://www.unix-ag.org/Linux-Alpha/Architectures/Avanti.html>.

config ALPHA_BROKEN_IRQ_MASK
	bool
	depends on ALPHA_GENERIC || ALPHA_PC164
	default y

config VGA_HOSE
	bool
	depends on VGA_CONSOLE && (ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL || ALPHA_TSUNAMI)
	default y
	help
	  Support VGA on an arbitrary hose; needed for several platforms
	  which always have multiple hoses, and whose consoles support it.


config ALPHA_SRM
	bool "Use SRM as bootloader" if ALPHA_CABRIOLET || ALPHA_AVANTI_CH || ALPHA_EB64P || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_EB164 || ALPHA_ALCOR || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_NAUTILUS || ALPHA_NONAME
	default y if ALPHA_JENSEN || ALPHA_MIKASA || ALPHA_SABLE || ALPHA_LYNX || ALPHA_NORITAKE || ALPHA_DP264 || ALPHA_RAWHIDE || ALPHA_EIGER || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_SHARK || ALPHA_MARVEL
	---help---
	  There are two different types of booting firmware on Alphas: SRM,
	  which is command line driven, and ARC, which uses menus and arrow
	  keys. Details about the Linux/Alpha booting process are contained in
	  the Linux/Alpha FAQ, accessible on the WWW from
	  <http://www.alphalinux.org/>.

	  The usual way to load Linux on an Alpha machine is to use MILO
	  (a bootloader that lets you pass command line parameters to the
	  kernel just like lilo does for the x86 architecture) which can be
	  loaded either from ARC or can be installed directly as a permanent
	  firmware replacement from floppy (which requires changing a certain
	  jumper on the motherboard). If you want to do either of these, say N
	  here. If MILO doesn't work on your system (true for Jensen
	  motherboards), you can bypass it altogether and boot Linux directly
	  from an SRM console; say Y here in order to do that. Note that you
	  won't be able to boot from an IDE disk using SRM.

	  If unsure, say N.

config EISA
	bool
	depends on ALPHA_GENERIC || ALPHA_JENSEN || ALPHA_ALCOR || ALPHA_MIKASA || ALPHA_SABLE || ALPHA_LYNX || ALPHA_NORITAKE || ALPHA_RAWHIDE
	default y

config ARCH_MAY_HAVE_PC_FDC
	def_bool y

config SMP
	bool "Symmetric multi-processing support"
	depends on ALPHA_SABLE || ALPHA_LYNX || ALPHA_RAWHIDE || ALPHA_DP264 || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_GENERIC || ALPHA_SHARK || ALPHA_MARVEL
	select USE_GENERIC_SMP_HELPERS
	---help---
	  This enables support for systems with more than one CPU. If you have
	  a system with only one CPU, like most personal computers, say N. If
	  you have a system with more than one CPU, say Y.

	  If you say N here, the kernel will run on single and multiprocessor
	  machines, but will use only one CPU of a multiprocessor machine. If
	  you say Y here, the kernel will run on many, but not all,
	  singleprocessor machines. On a singleprocessor machine, the kernel
	  will run faster if you say N here.

	  See also the SMP-HOWTO available at
	  <http://www.tldp.org/docs.html#howto>.

	  If you don't know what to do here, say N.

config HAVE_DEC_LOCK
	bool
	depends on SMP
	default y

config NR_CPUS
	int "Maximum number of CPUs (2-32)"
	range 2 32
	depends on SMP
	default "32" if ALPHA_GENERIC || ALPHA_MARVEL
	default "4" if !ALPHA_GENERIC && !ALPHA_MARVEL
	help
	  MARVEL support can handle a maximum of 32 CPUs, all the others
          with working support have a maximum of 4 CPUs.

config ARCH_DISCONTIGMEM_ENABLE
	bool "Discontiguous Memory Support (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	help
	  Say Y to support efficient handling of discontiguous physical memory,
	  for architectures which are either NUMA (Non-Uniform Memory Access)
	  or have huge holes in the physical address space for other reasons.
	  See <file:Documentation/vm/numa> for more.

source "mm/Kconfig"

config NUMA
	bool "NUMA Support (EXPERIMENTAL)"
	depends on DISCONTIGMEM && BROKEN
	help
	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
	  Access).  This option is for configuring high-end multiprocessor
	  server machines.  If in doubt, say N.

config NODES_SHIFT
	int
	default "7"
	depends on NEED_MULTIPLE_NODES

# LARGE_VMALLOC is racy, if you *really* need it then fix it first
config ALPHA_LARGE_VMALLOC
	bool
	---help---
	  Process creation and other aspects of virtual memory management can
	  be streamlined if we restrict the kernel to one PGD for all vmalloc
	  allocations.  This equates to about 8GB.

	  Under normal circumstances, this is so far and above what is needed
	  as to be laughable.  However, there are certain applications (such
	  as benchmark-grade in-kernel web serving) that can make use of as
	  much vmalloc space as is available.

	  Say N unless you know you need gobs and gobs of vmalloc space.

config VERBOSE_MCHECK
	bool "Verbose Machine Checks"

config VERBOSE_MCHECK_ON
	int "Verbose Printing Mode (0=off, 1=on, 2=all)"
	depends on VERBOSE_MCHECK
	default 1
	---help---
	  This option allows the default printing mode to be set, and then
	  possibly overridden by a boot command argument.

	  For example, if one wanted the option of printing verbose
	  machine checks, but wanted the default to be as if verbose
	  machine check printing was turned off, then one would choose
	  the printing mode to be 0. Then, upon reboot, one could add
	  the boot command line "verbose_mcheck=1" to get the normal
	  verbose machine check printing, or "verbose_mcheck=2" to get
	  the maximum information available.

	  Take the default (1) unless you want more control or more info.

config HZ
	int
	default 1200 if ALPHA_RAWHIDE
	default 1024

source "drivers/pci/Kconfig"
source "drivers/eisa/Kconfig"

source "drivers/pcmcia/Kconfig"

config SRM_ENV
	tristate "SRM environment through procfs"
	depends on PROC_FS
	---help---
	  If you enable this option, a subdirectory inside /proc called
	  /proc/srm_environment will give you access to the all important
	  SRM environment variables (those which have a name) and also
	  to all others (by their internal number).

	  SRM is something like a BIOS for Alpha machines. There are some
	  other such BIOSes, like AlphaBIOS, which this driver cannot
	  support (hey, that's not SRM!).

	  Despite the fact that this driver doesn't work on all Alphas (but
	  only on those which have SRM as their firmware), it's save to
	  build it even if your particular machine doesn't know about SRM
	  (or if you intend to compile a generic kernel). It will simply
	  not create those subdirectory in /proc (and give you some warning,
	  of course).

	  This driver is also available as a module and will be called
	  srm_env then.

source "fs/Kconfig.binfmt"

endmenu

source "net/Kconfig"

source "drivers/Kconfig"

source "fs/Kconfig"

source "arch/alpha/Kconfig.debug"

# DUMMY_CONSOLE may be defined in drivers/video/console/Kconfig
# but we also need it if VGA_HOSE is set
config DUMMY_CONSOLE
	bool
	depends on VGA_HOSE
	default y

source "security/Kconfig"

source "crypto/Kconfig"

source "lib/Kconfig"

